#ifndef _AVLTREENODE_H_
#define _AVLTREENODE_H_
#include "TreeNode.h"
namespace DataStructuresWet1
{
template <typename T, typename ID>
class AVLTreeNode : public TreeNode <T, ID>
{
public:
	AVLTreeNode(T& Value, AVLTreeNode* Parent) : Value(Value), Parent (Parent)
	{
		//TODO: Implement
	}
	AVLTreeNode(const AVLTreeNode& tn)
	{
		//TODO: Implement
	}
	~AVLTreeNode()
	{
		//TODO: Implement
	}
	AVLTreeNode* GetFather()
	{
		//TODO: Implement
	}
	AVLTreeNode* GetLeftSon()
	{
		//TODO: Implement
	}
	AVLTreeNode* GetRightSon()
	{
		//TODO: Implement
	}
	unsigned int GetRank()
	{
		//TODO: Implement
	}
	virtual void Insert(T& node)
	{
	}
	virtual void Remove(ID id)
	{
	}
	virtual T& Find (ID id)
	{
		return Value;
	}
protected:
	T& Value;
	AVLTreeNode* Parent;
	AVLTreeNode* LeftSon;
	AVLTreeNode* RightSon;
	unsigned int Rank;
};
}
#endif //_AVLTREENODE_H_